﻿// BaseObject.cs
// Author: Gant Briseno, Ren Katims
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
#endregion

namespace Casters.source.Objects
{
    public class CBaseObject
    {
        public enum TYPE { Player = 0, Computer, Effect, Text, Spell, Max };

        // Variables
        public Vector2 m_vPosition;
        public bool m_bIsAlive;
        public TYPE m_ObjectType;

        public CBaseObject()
        {
            m_vPosition = Vector2.Zero;
            m_bIsAlive = true;
            m_ObjectType = TYPE.Max;
        }

        /// <summary>
        /// Gets the type of object that this is
        /// </summary>
        /// <returns></returns>
        public new TYPE GetType()
        {
            return m_ObjectType;
        }

        /// <summary>
        /// Load Content
        /// Register Events
        /// </summary>
        public virtual void LoadContent()
        {
        }

        /// <summary>
        /// Unload Content
        /// Unregister Events
        /// </summary>
        public virtual void UnloadContent()
        {
        }

        /// <summary>
        /// Update Function
        /// </summary>
        /// <param name="dt">Delta Time</param>
        public virtual void Update(float dt)
        {

        }

        /// <summary>
        /// Render
        /// </summary>
        public virtual void Draw()
        {

        }
    }
}
